package p01;

public class SearchPrimeNumber {
    public static void main(String[] args) {
        int[] primes = search(100);
        for (int prime : primes) {
            if (prime != 0) {
                System.out.print(prime + " ");
            }
        }
    }

    /***
     * 搜索素数
     * @param max 用户指定最大值
     * @return 返回第n个素数
     */
    public static int[] search(int max) {
        // 定义数组记录素数
        int[] prime = new int[max];
        int count = 0; // 记录找到的素数数量

        // 从2开始搜索素数，到指定最大数为止
        for (int i = 2; i <= max; i++) {
            if (isPrime(i)) {
                prime[count++] = i;
            }
        }
        return prime;
    }

    /**
     * 判断一个数是否为素数
     * @param num 要判断的数
     * @return 如果是素数返回true，否则返回false
     */
    private static boolean isPrime(int num) {
        if (num < 2) {
            return false;
        }
        for (int i = 2; i < num / 2; i++) { //超过num一半的数，没有能被整除的数，就不用判断了
            if (num % i == 0) { //
                return false;
            }
        }
        return true;
    }
}